Skip to main content

ลดโอกาสเจอ Claude Code Usage Limit ใน 3 ขั้นตอน

สิ่งที่เจอบ่อยสุดในการ community ของคนที่ใช้ Claude Code คือ เสียงบ่น กร่น ด่า เรื่องที่ใช้ไปแปปๆก็ชน limit แล้ว ทำงานไม่ทันเสร็จเลย ต้องมานั่งรอกัน 5 ชั่วโมงอีกแล้ว วันนี้ผมเลยอยากลองแชร์เทคนิคที่ผมใช้เองมาตลอดหลายเดือนที่ผ่านมาและทำให้ผมรอดจากการชน usage limit มาตลอด โดยเราต้องปรับตัวด้วย 3 ขั้นตอนง่ายๆ ตามนี้เลยครับ

1. เริ่มจากเข้าใจ context window และการคิด usage limit #

ถึงแม้ Claude Code หรือ AI Coding tool ตัวอื่นๆ จะทำงานกับคุณผ่านการ chat เหมือนมนุษย์ แต่ความจริงเบื้องหลังนั้นแตกต่างกับการคุยการกับมนุษย์ตรงที่ว่า Claude จะ “ไม่เคยจำ” ประโยคสนทนาที่เราพิมพ์ส่งไปก่อนเลย ดังนั้นทุกครั้งที่เราเคาะ “Enter” มันคือการส่งบทสนทนาทั้งยวงกลับไปให้ Claude ประมวลผลคำตอบให้ใหม่ทุกครั้ง เพื่อให้คำตอบที่ออกมายังต่อเนื่องและเป็นเรื่องเดียวกัน เช่น

You: สั่ง ให้สร้างหน้า landing page โดยเขียน spec ทุกอย่างไปครบถ้วน
Claude: เขียนหน้าเว็บทั้งหน้าและเรียกใช้ tool สร้างไฟล์ขึ้นมาให้เรา

แต่ถ้าเราอยากพิมพ์บอกให้ “แก้สีปุ่มเป็นสีแดง” สิ่งที่เราส่งไปให้ Claude ประมวลผล ไม่ใช่แค่ประโยคใหม่ แต่มันคือ

You: สั่ง ให้สร้างหน้า landing page โดยเขียน spec ทุกอย่างไปครบถ้วน
Claude: เขียนหน้าเว็บทั้งหน้าและเรียกใช้ tool สร้างไฟล์ขึ้นมาให้เรา
You: แก้สีปุ่มเป็นสีแดง

อย่างที่บอกไปตอนแรก สมองของ Claude มันไม่จำ ดังนั้นเราเลยเอาทั้งหมดที่เคยคุยส่งไปทั้งหมด และมันคงไม่มีปัญหาอะไร ถ้าสมองของมันจำได้ไม่จำกัด แต่ว่า Claude Sonnet 4.5 ก็มีความจำหรือ Context Window อยู่ที่ 200,000 tokens เองนี่สิ (เรื่องการคิด token ลองไปอ่านเพิ่มเติมกันได้นะครับ) เป็นตัวเลขที่ดูเหมือนเยอะนะครับ แต่พอใช้กับงานจริงๆ หรือกับ codebase ใหญ่ๆจริงๆมันไม่พอแน่นอน (ไฟล์เดียวก็ปาไป 10k tokens ได้แล้ว) และถ้า message ที่จะส่งไปให้ Claude ประมวลผลมันมากกว่า 200k ไม่ได้ อะไรที่เกินก็จะโดนตัดออก จึงเป็นที่มาของความเอ๋อ!! เพราะของที่ควรรู้ model ปลายทางมันไม่ได้รับไปด้วย

และที่สำคัญสำหรับคนที่ subscribe Pro หรือ Max plan แบบเราๆ มันก็มี Usage limit ที่มาครอบเราอีก ซึ่งถึงแม้ใน blog ของ Claude จะระบุคร่าวๆว่า ใน 5 ชั่วโมงเราส่งได้ประมาณกี่ข้อความ แต่เบื้องหลังที่แท้จริง “ผมคิดเอาเอง” ว่ามันก็ยังเป็นการคิดแบบ token based แหละคือกำหนดมาเลยว่า 5 ชั่วโมงเราจะเผาได้กี่ tokens เพียงแต่เลขนั้นไม่เคยถูกเปิดเผยออกมาตรงๆ (ไม่งั้นเขาจะประมาณข้อความทำไมล่ะ ไม่บอกเป็นเลขตรงๆไปเลย)

ถ้าเราเอาทั้งเรื่องการส่งข้อความทั้งยวงไปใหม่เพื่อประมวลผลทุกรอบ และ การคิด usage limit ที่เป็น token based มายำรวมกัน เราก็จะเห็นภาพว่า

“ยิ่งคุยยาว ยิ่งเผา token หนัก ยิ่งชน usage limit ไวขึ้น”

หลายคนก็เถียงละ อ้าว!! ไม่คุยยาวๆ แล้วงานมันจะเสร็จได้ไงล่ะ กว่าจะจบ project มันก็ต้องคุยไปเรื่อยๆสิ ใจเย็นๆครับ เดี๋ยวเรามาดูขั้นตอนถัดไป

2. ประหยัด usage token ด้วยการแบ่งงานและเลือกเครื่องมือให้เหมาะสม #

ถ้า developer ที่เคยใช้พวก project management tool อย่าง JIRA ก็น่าคุ้นเคยกับการแตก task จากงานใหญ่ๆระดับ project ย่อยมาเป็น feature แล้วจบด้วย task ย่อยๆ เพื่อแบ่งงานกันทำใช่ไหมครับ! ใช่แล้ว ตอนนี้คุณคือ PM ด้วยตัวเองแล้ว ถ้าอยากประหยัด usage token เราก็ต้องไม่คุยยาว ดังนั้นเราจะซอยงานออกเป็นชิ้นเล็กๆ จะได้ไม่ต้องคุยยืดยาว

งานแบ่งงานนี้ก็ไม่จำกัดนะครับว่าจะทำแบบไหน จะใช้ JIRA แล้วใช้ MCP tool ไปอ่านหรือเขียนลง markdown ไฟล์ง่ายๆ ใน project ก็ทำได้เลย แต่อย่างที่เคยเขียนไปในบทความก่อนหน้า MCP server นี่ก็ตัวเปลือง token เลยนะครับใช้กันระวังๆด้วย ถ้าเราไม่อยากเสีย usage token ฟรีๆแบบไม่รู้ตัว เช็คกันง่ายๆด้วยคำสั่ง /context ก็จะเห็นเลยว่าอะไรใช้ไปกี่ token

งานบางงานอย่างการหา bug ที่ต้องไล่ code จากไฟล์หลายๆ ไฟล์ อันนี้ก็ต้องระวังเรื่อง usage token ให้ดีนะครับ เพราะมันจะเอา code ของแต่ละไฟล์ที่ไปอ่าน มารวมกันไว้ในบทสนทนาด้วย ซึ่งถ้าเป็นงาน review code หรือหา bug แบบนี้ แนะนำให้ลองใช้ subagent ทำงานแยกออกไปเป็น context window ของตัวเองนะครับ ปล่อยน้องแตกสายออกไปหาปัญหาแล้วค่อยตอบกลับมาแค่บทสรุป code ที่ subagent ไปไล่มาหลายไฟล์ จะได้ไม่ถูกเอามารวม

ส่วนวิธีเรียกใช้นั้นก็ง่ายมาก บอกไปเลยตรงๆว่าให้ใช้ subagent แยกไปทำงานนี้หน่อย หรือคุณอาจจะสร้าง subagent ที่เก่งเฉพาะทางด้วย /agent ก็ได้อย่าลืม tag เรียกเขาขึ้นมาก็พอ

เพียงเท่านี้งานของคุณก็จะถูกซอยเป็นชิ้นเล็กๆ ทำทีละนิด กินทีละคำ แถมของที่ไม่จำเป็นต้องจำ (ไม่จำเป็นต้องมาอยู่ใน context) ก็จะไม่ถูกเอามานับรวมในบทสนทนาถัดไปแล้ว

แต่เดี๋ยวก่อน แยกงานแล้วยังไงทำเสร็จ task A แล้วทำ task B ต่อมันก็ยังจำของที่เคยทำใน task A ไปด้วยดิ ใช่แล้วครับ ขั้นตอนสุดท้ายเลยต้อง..

3. Clear งานที่จบแล้วทิ้งไป แล้วเริ่มใหม่เสมอ #

ใช่แล้ว!! อย่างที่คูมอิ้งค์บอก “เริ่มต้นใหม่กับคนเดิม” เราสามารถทำได้กับ Claude Code ทันทีแบบไม่ต้องกังวลอะไร จากขั้นตอนที่แล้ว เมื่อเราทำ task A จบไปแล้ว commit ลง git ไปแล้ว มั่นใจว่างานนั้นจะไม่หายไปแล้ว เราก็สามารถ /clear เพื่อล้างบทสนทนาเกี่ยวกับ task A ทิ้งให้หมดก่อนไปเริ่มทำ task B เพราะว่ากันตามตรงงานที่มันเสร็จไปแล้ว เราจะส่งมันไปด้วยเพื่อให้เปลือง token ทำไมกันล่ะ

อ้าว แล้วแบบนี้ Claude จะรู้ได้ไงว่างานมันเสร็จไปไหน ก็ไหนบอกว่ามันจะลืม?? ใช่ครับ แต่อย่าลืมว่าเรามี JIRA หรือ markdown ไฟล์ที่เราบันทึก task list เอาไว้อยู่จริงไหม แค่เอาไปลากการ์ด หรือแก้ task ในไฟล์ว่า “DONE” เพียงเท่านี้ทุกครั้งที่ Claude กลับมาอ่าน มันก็จะเข้าใจสถานการณ์แล้วว่าปัจจุบันกำลังทำงานค้างอยู่ที่จุดไหน

สรุป #

อันนี้เป็นวิธีที่พื้นฐานสุดๆ ที่ใช้บริหาร context กับ Claude Code หรือ AI Coding tool ตัวอื่นๆได้ ใครที่ไม่เคยทำแบบนี้ ที่ผ่านมาคุยกับ Claude Code เหมือนเพื่อน (หรือลูกจ้าง) คนนึง ไม่สนใจเรื่องการจัดการ context เลย ผมมั่นใจมากๆ ว่ามันจะช่วยยืดเวลา ทำให้คุณชน usage limit ได้นานขึ้น หรืออาจจะไม่ชน usage limit อีกเลยก็ได้ (ผมแทบไม่ชน แต่ผม Max นะครับ) แล้วโอกาสที่จะเจอ AI เอ๋อ ลืม code ก็น่าจะน้อยลงมากๆเช่นกัน


อ่านเพิ่มเติม #